Non-volatile data storage devices, such as embedded memory devices and removable memory devices, have enabled increased portability of data and software applications. For example, multi-level cell (MLC) flash memory devices may store multiple bits in each flash memory cell, enhancing data storage density. Data stored at such devices may be encoded using error correcting coding (ECC) techniques that protect the data from errors associated with power supply noise, temperature variations, and other causes of data corruption. In some cases, the ECC techniques may be insufficient to recover corrupted data. For example, some data storage devices sequentially store bits of data by first writing “lower page” data (e.g., a “0” bit in a “10” number) to a storage element and subsequently writing “upper page” data (e.g., a “1” bit in a “10” number) to the storage element. If a write abort event occurs after writing the lower page data and while writing the upper page data, the lower page data may be corrupted. For example, after occurrence of the write abort event, a threshold voltage representing a particular bit of the data may fall between a first threshold voltage range associated with “0” bits and a second threshold voltage range associated with “1” bits. Further, the corruption of many such bits may exceed an ECC capability associated with the particular ECC technique used to encode the data, causing data loss.